導讀:HTTpS全稱為Hypertext Transfer protocol over Secure Socket Layer,中文含義為“超文本傳輸協議在安全加密字層”,簡單來說就是加密數據傳輸,通俗的說就是安全連接。HTTpS安全
發表日期:2019-05-10
文章編輯:興田科技
瀏覽次數:12197
標簽:
HTTpS全稱為Hypertext Transfer protocol over Secure Socket Layer,中文含義為“超文本傳輸協議在安全加密字層”,簡單來說就是加密數據傳輸,通俗的說就是安全連接。
HTTpS安全超文本傳輸協議,它是一個安全通信通道,它基于HTTp開發,用于在客戶計算機和服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTp的安全版。
https相比與http多了安全支持最關鍵的步驟就是建立server和client的SSL安全連接通道。
客戶端對https的支持方案:
這里主要描述流程和邏輯,以及這樣做的目的。我們可以看到整個過程分為四個階段:
1,client建立TCp連接后,發送一個標志請求,雙方交換一些與加密相關的信息。這個過程主要是為了協商加密算法。
2,server會緊接著將自己的證書發送給client,來完成client對server身份的認證。這里的證書可以理解為一種網絡身份證,即由一些有資質的CA機構(如VeriSign)經過核實后頒發的證明文件,因此如果想讓server支持https是需要花錢買數字證書的,同時windows等操作系統也已經提供了一套ApI來完成對證書合法性的檢查(類似于去公安部分查證某人的身份)。
對于這一步,瀏覽器的標準做法是維護一個CA機構的列表(該列表用戶可以干預),當驗證證書時,如果是列表中的機構(或經其授權的機構,證書鏈)頒發的就為可信任證書。然后還會驗證證書有效期、證書標明的域名和目前訪問的域名是否一致、證書中的公鑰能否解開證書數字簽名等。對于其他應用客戶端,由于已經明確知道server證書的域名等信息,因此可以將認證邏輯做的更加嚴格。如果客戶端發現server認證失敗,就斷開連接。這樣,就可以防止有人偽造server來騙取客戶端連接和https請求,從而將https解密盜用接口。
需要明確的一個概念是,SSL的認證和加密之間沒有必然聯系,也就是說如果client不做認證,后續依然可以繼續標準的SSL加密,和server進行https通信。可以這樣理解,SSL將身份認證步驟獨立出來,如果雙方繼續連接和握手過程,那么可以繼續協商數據加密算法,完成后續的通信。此時對于通信雙方來說,這次的數據通道和數據本身都是安全的,不會別第三者截取和解密。但是如果和你打電話的人不是你要的,雖然你說的是暗語,對方也能聽懂,因為電話一開始你們倆就從一系列標準暗語里協商了一個來用,暗語只是用來防止第三者竊聽。
3,如果server要求,client需要發送自己的證書,server完成對client端身份的認證。目的與第2步類似,但是一般很多server并不要求對client身份進行認證。
4,協商最終加密算法。client用服務器證書中的公鑰加密一個隨機串密碼(pre-mastersecret),并將一個由之前協商算法計算而來的握手消息用pre-mastersecret加密,將這些一并發給server;server收到后,用對應的私鑰解密pre-mastersecret,由于密鑰只有server知道,因此其他人無法得到pre-mastersecret。server使用pre-mastersecret解密握手消息,并驗證是否符合之前的協商規則。server和client通過相同的算法生成一個mastersecret,此后server和client之間用mastersecret作為初始密鑰進行對稱加解密通信。可以看出,雙方先通過非對稱加密方式生成對稱加密所用的密鑰,然后用該密鑰進行對稱加密通信。關于對稱加密/非對稱加密/公鑰/密鑰等概念,請自行google。
需要說明的是,上面四個階段是從邏輯上區分的,實際SSL協商時client和server之間的數據交互可能有所穿插和合并。通過以上建立起的SSL,保證了通信雙方、通道和數據的安全性,后續的通信過程也足夠安全。
三、客戶端實現https方式
實際上很多瀏覽器、郵箱等已經是支持https的客戶端了。如果我們在開發過程中有客戶端對https的支持需求,可以按照標準的https/ssl協議來實現,但是難度還是相當大的。幸好已經有開源的應用那就是libcurl 和 openssl。openssl封裝了ssl標準,而libcurl也提供了對openssl的支持。從目前的實際情況看,主流瀏覽器都預埋了對ssl證書的支持,支持https訪問,同時能給訪客以更高層級的安全保障。
上一篇:
暫無信息上一篇:
內容運營的三個必殺技和三個陷阱!更多新聞
2020
關于網站建設,DIY自助建站工具(站長工具),主要是通過使用模板和內容管理系統來建設及更新網站。使得網站建設與維護都變得容易起來。許多主機服務提供商都
View details
2019
HTTpS全稱為Hypertext Transfer protocol over Secure Socket Layer,中文含義為“超文本傳輸協議在安全加密字層”,簡單來說就是加密數據傳輸,通俗的說就是安全連接。HTTpS安全
View details
2020
關于網站建設,總有很多人問我百度怎么了?有什么變化,為什么不更新等等諸如此類的問題。不論是否百度做過算法調整,或許只要因為某些事情百度不更新,也會有
View details
2019
移動互聯網時代,離不開手機,在人們通過網絡尋找商機的時候,卻忽視了移動互聯網最為重要的上網工具,不錯,那就是手機,正如《我不是藥神》那句經典臺詞:“誰敢保證不生病”一樣,“誰敢
View details